#pragma once

#include "Camera.h"
#include "MathHelper.h"

#define QUAKECAMERA_DAMPING				8.0f
#define QUAKECAMERA_SPEEDRAMPTIME		0.25f
#define QUAKECAMERA_PITCH_MAXIMUM		PI / 2
#define	QUAKECAMERA_PITCH_MINIMUM		-QUAKECAMERA_PITCH_MAXIMUM
#define QUAKECAMERA_ROLL_MAXIMUM		PI / 4
#define	QUAKECAMERA_ROLL_MINIMUM		-QUAKECAMERA_ROLL_MAXIMUM
#define QUAKECAMERA_SPEED_MAXIMUM		256.0f
#define QUAKECAMERA_SENSITIVITY			0.125f

class QuakeCamera : public Camera
{
public:
	QuakeCamera();
	~QuakeCamera();
public:
	void Update(float elapsedTime);
private:
	float m_fPitch;
	float m_fYaw;
	float m_fRoll;
	float m_fSpeedRamp;
};